home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-10-20 | 1.9 KB | 111 lines | [TEXT/CWIE] |
- #include <iostream.h>
- #include <string.h>
-
- const short kMaxNameSize = 20;
-
- class Employee;
-
-
- //--------------------------------------- Payroll
-
- class Payroll
- {
- // Data members...
- private:
-
- // Member functions...
- public:
- Payroll();
- ~Payroll();
- void PrintCheck( Employee *payee );
- };
-
- //--------------------------------------- Employee
-
- class Employee
- {
- friend void Payroll::PrintCheck( Employee *payee );
-
- // Data members...
- private:
- char employeeName[ kMaxNameSize ];
- long employeeID;
- float employeeSalary;
-
- // Member functions...
- public:
- Employee( char *name, long id, float salary );
- ~Employee();
- void PrintEmployee();
- };
-
-
- //------------------- Payroll Member Functions
-
- Payroll::Payroll()
- {
- cout << "Creating payroll object\n";
- }
-
- Payroll::~Payroll()
- {
- cout << "Destroying payroll object\n";
- }
-
- void Payroll::PrintCheck( Employee *payee )
- {
- cout << "Pay $" << payee->employeeSalary
- << " to the order of "
- << payee->employeeName << "...\n\n";
- }
-
-
- //------------------- Employee Member Functions
-
- Employee::Employee( char *name, long id, float salary )
- {
- strncpy( employeeName, name, kMaxNameSize );
-
- employeeName[ kMaxNameSize - 1 ] = '\0';
-
- employeeID = id;
- employeeSalary = salary;
-
- cout << "Creating employee #" << employeeID << "\n";
- }
-
- Employee::~Employee()
- {
- cout << "Destroying employee #" << employeeID << "\n";
- }
-
- void Employee::PrintEmployee()
- {
- cout << "-----\n";
- cout << "Name: " << employeeName << "\n";
- cout << "ID: " << employeeID << "\n";
- cout << "Salary: " << employeeSalary << "\n";
- cout << "-----\n";
- }
-
-
- //--------------------------------------- main
-
- int main()
- {
- Employee *employee1Ptr;
- Payroll *payroll1Ptr;
-
- payroll1Ptr = new Payroll;
-
- employee1Ptr = new Employee( "Carlos Derr", 1000, 500.0 );
-
- employee1Ptr->PrintEmployee();
-
- payroll1Ptr->PrintCheck( employee1Ptr );
-
- delete employee1Ptr;
- delete payroll1Ptr;
-
- return 0;
- }